#include "app_runner.h"
#include "app_pool.h"
#include "app_mqtt.h"
#include "app_device.h"
#include "app_ble.h"
#include "log/log.h"
#include <signal.h>
#include <unistd.h>

static int is_running = 1;

void exit_handler(int signum)
{
    log_debug("准备结束进程");
    is_running = 0;
}

int App_Runner_run(void)
{
    signal(SIGTERM, exit_handler);
    signal(SIGINT, exit_handler);
    // 初始化线程池
    App_Pool_Init(5);
    // 初始化MQTT
    app_mqtt_init();
    // 初始化设备
    Device_t *device = App_Device_Init(DEVICE_FILE);
    // 初始化蓝牙和串口
    App_BLE_Init(&device);
    // 启动设备
    App_Device_Start();
    while(is_running)
    {
        sleep(1);
    }
    // 释放资源
    App_Pool_close();
    app_mqtt_close();
    App_Device_Stop();
    return 0;
}